@时光机
2年前 提问
1个回答
常用的软件安全性测试方法有哪些
上官雨宝
2年前
常用的软件安全性测试方法有以下这些:
基于故障树分析的安全性测试方法:基于故障树分析的软件安全性测试方法是利用故障树的最小割集来生成软件安全性测试用例的方法。它以系统中最不希望发生的故障状态作为故障分析的顶事件,寻找导致这一故障发生的全部可能因素,绘制故障树,然后搜索出最小割集,并以最小割集为依据生成软件安全性测试用例。
基于Petri网的安全性测试方法:基于Petri网的软件安全性测试方法主要有正向分析法和逆向分析法。正向分析法首先建立完整的可达图和状态标识表,得到Petri网的可达集,建立相应的Petri网模型,然后在可达集中搜索所有包含任意一个状态的状态标识,并将其标记为危险标识,从初始状态到该危险标识的每个变迁序列均可设计为一个测试用例。
基于故障注入的安全性测试:软件故障注入可以有效地模拟各种各样的异常程序行为,通过故障注入方法能够强制性地使程序进入到某些特定的状态,而这些状态在采用常规的标准测试技术的情况下,一般是无法到达的。软件故障注入针对应用与环境的交互点,主要包括用户输入、文件系统、网络接口和环境变量等引起的故障。
模糊测试:模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件安全漏洞的方法。模糊测试将随机数据插入程序,观察其是否能够容忍杂乱输入。模糊测试是不合逻辑的,只是产生杂乱数据攻击程序。采用模糊测试攻击程序可以发现其他采用逻辑思维来测试难以发现的安全缺陷。
基于风险的安全测试:基于风险的安全测试方法是将风险分析、安全测试与软件开发过程结合起来,尽可能早地发现高风险的安全漏洞。这种方法强调在软件开发的各个阶段进行误用模式、异常场景、风险分析以及渗透测试等,测试不再是软件发布后打补丁,而是将安全测试相关过程集成到软件开发生命周期中。